
import wx from 'weixin-js-sdk'

// import {wxShare as WxShare} from '@/api/wxShare'
import { wxShare as WxShare } from '@/api/society'

function randomString (len) {
  len = len || 32
  var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
  var maxPos = $chars.length
  var pwd = ''
  for (var i = 0; i < len; i++) {
    pwd += $chars.charAt(Math.floor(Math.random() * maxPos))
  }
  return pwd
}

export function wxReady (shareData) {
  var defaultData = {
    title: `分享的标题`,
    desc: `内容`,
    link: `${location.href}`,
    logo: ``, // 分享出来的图片的
    success: function (res) {

    }
  }
  let data = { ...defaultData, ...shareData }
  wx.ready(function () {
    // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
    wx.updateAppMessageShareData({
      title: data.title, // 分享标题
      desc: data.desc,
      link: data.link, // 分享链接
      imgUrl: data.logo, // 分享图标
      success: function () {
        // 用户确认分享后执行的回调函数
        console.log(666)
      },
      cancel: function () {
        // 用户取消分享后执行的回调函数
        console.log(777)
      }
    })

    wx.updateTimelineShareData({
      title: data.title, // 分享标题
      link: data.link, // 分享链接
      imgUrl: data.logo, // 分享图标
      desc: data.desc,
      success: function () {
        // 用户确认分享后执行的回调函数
        console.log(888)
      },
      cancel: function () {
        // 用户取消分享后执行的回调函数
        console.log(999)
      }
    })

    wx.onMenuShareAppMessage({
      title: data.title, // 分享标题
      link: data.link, // 分享链接
      imgUrl: data.logo, // 分享图标
      desc: data.desc,
      success: function () {
        // 用户确认分享后执行的回调函数
        console.log(888)
      },
      cancel: function () {
        // 用户取消分享后执行的回调函数
        console.log(999)
      }
    })
  })
}

export function wxShare () {
  console.log(123)
  var timestamp = Date.parse(new Date()) + ''
  var nonceStr = randomString(32)
  var url = location.href.split('#')[0]
  var appId = 'wx8da72d9fb6960d56'
  const postData = {
    timestamp, // 时间戳
    nonceStr, // 生成签名随机串
    url //
  }

  return WxShare(postData)
    .then(res => res.data)
    .then(d => {
      const {signature} = d
      wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: appId, // 必填，企业号的唯一标识，此处填写企业号corpid
        timestamp: timestamp, // 必填，生成签名的时间戳
        nonceStr: nonceStr, // 必填，生成签名的随机串
        signature: signature, // 必填，签名，见附录1
        jsApiList: [
          'checkJsApi', // 判断当前客户端版本是否支持指定JS接口
          'onMenuShareTimeline', // 分享给好友
          'updateAppMessageShareData',
          'updateTimelineShareData',
          'onMenuShareAppMessage' ] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
      })
    })
}
